from system.models import Menu,MenuItem

def build_item_tree(items):
    """递归构建菜单项的子菜单树"""
    item_list = []
    for item in items:
        # 获取当前菜单项的直接子菜单（递归构建）
        children = build_item_tree(
            MenuItem.objects.filter(
                parent=item,
                is_active=True
            ).order_by('order')
        )

        # 组装当前菜单项数据
        item_data = {
            'id': item.id,
            'name': item.title,
            'type': item.type,
            'url': item.url,
            'icon': item.icon,
            'order': item.order,
            'is_active': item.is_active,
            'created_at': item.created_at.isoformat(),
            'updated_at': item.updated_at.isoformat(),
            'parent_id': item.parent_id,
            'menu_id': item.menu_id,
            # 'hasChildren':True if len(children) > 0 else False,
            'target': item.target,
            'depth': item.depth,  # 层级深度
            'is_top_level': item.is_top_level,
            'children': children  # 子菜单项列表
        }
        item_list.append(item_data)

    return item_list